package Include;

import Common.TacOperandType;

// Operand 类表示一个操作数，它包含了操作数的值、使用信息以及类型。
// 它常用于编译器或中间代码生成器中，
// 表示操作数的不同类型（如变量、常量、寄存器等），
// 并跟踪操作数的使用情况。
// 这使得在后续的优化或代码生成阶段，可以更好地处理操作数。

public class Operand {
    public String value;
    public UseInfo useInfo;
    public TacOperandType operType;

    public Operand() {
        this.value = "";
        this.useInfo = new UseInfo();
        this.operType = null;
    }

    public Operand(String str, TacOperandType operType) {
        this.value = str;
        this.useInfo = new UseInfo();
        this.operType = operType;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public UseInfo getUseInfo() {
        return useInfo;
    }

    public void setUseInfo(UseInfo useInfo) {
        this.useInfo = useInfo;
    }

    public TacOperandType getOperType() {
        return operType;
    }

    public void setOperType(TacOperandType operType) {
        this.operType = operType;
    }
}
